Babl *destination,
BablFuncLinear linear,
BablFuncPlane plane,
- BablFuncPlanar planar)
+ BablFuncPlanar planar,
+ void *user_data)
{
Babl *babl = NULL;
babl->conversion.pixels = 0;
babl->conversion.processings = 0;
+ babl->conversion.data = user_data;
+
if (babl->class_type == BABL_CONVERSION_LINEAR &&
BABL (babl->conversion.source)->class_type == BABL_MODEL)
{
src_format,
dst_format,
"linear", linear,
+ "data", user_data,
NULL);
babl->conversion.error = 0.0;
}
int type = 0;
int got_func = 0;
const char *arg = first_arg;
+ void *user_data= NULL;
Babl *source;
Babl *destination;
id = va_arg (varg, int);
}
+ else if (!strcmp (arg, "data"))
+ {
+ user_data = va_arg (varg, void*);
+ }
+
else if (!strcmp (arg, "linear"))
{
if (got_func++)
babl = babl_db_exist (db, id, name);
}
- babl = conversion_new (name, id, source, destination, linear, plane, planar);
+ babl = conversion_new (name, id, source, destination, linear, plane, planar,
+ user_data);
/* Since there is not an already registered instance by the required
* id/name, inserting newly created class into database.
void *destination,
long n)
{
- void *source_data;
- void *destination_data;
-
- if (conversion->source->instance.class_type == BABL_MODEL)
- {
- source_data = conversion->source->model.data;
- destination_data = conversion->destination->model.data;
- }
- else
- {
- source_data = conversion->source->format.model->data;
- destination_data = conversion->destination->format.model->data;
- }
- return conversion->function.linear (source, destination, n, source_data,
- destination_data);
+ return conversion->function.linear (source, destination, n, conversion->data);
}
static long
return conversion->function.plane (source, destination,
src_pitch, dst_pitch,
n,
- conversion->source->model.data,
- conversion->destination->model.data);
+ conversion->data);
}
static long
dst_data,
destination->pitch,
n,
- conversion->source->model.data,
- conversion->destination->model.data);
+ conversion->data);
}
long
fish_reference->fish.pixels -= test_pixels;
fish_destination_to_rgba->fish.pixels -= 2 * test_pixels;
-
babl_free (source);
babl_free (destination);
babl_free (destination_rgba_double);
#include <stdio.h>
#include <assert.h>
#include "babl.h"
+#include "babl-memory.h"
+
+void babl_sanity (void);
typedef struct BablPalette
{
rgba_to_pal (char *src,
char *dst,
long n,
- void *foo,
void *dst_model_data)
{
BablPalette **palptr = dst_model_data;
rgba_to_pala (char *src,
char *dst,
long n,
- void *foo,
void *dst_model_data)
{
BablPalette **palptr = dst_model_data;
pal_to_rgba (char *src,
char *dst,
long n,
- void *src_model_data,
- void *foo)
+ void *src_model_data)
{
BablPalette **palptr = src_model_data;
BablPalette *pal = *palptr;
pal_u8_to_rgba_u8 (char *src,
char *dst,
long n,
- void *src_model_data,
- void *foo)
+ void *src_model_data)
{
BablPalette **palptr = src_model_data;
- assert(palptr);
BablPalette *pal;
+ assert (palptr);
pal = *palptr;
assert(pal);
while (n--)
pala_to_rgba (char *src,
char *dst,
long n,
- void *src_model_data,
- void *foo)
+ void *src_model_data)
{
BablPalette **palptr = src_model_data;
BablPalette *pal = *palptr;
{
Babl *model;
Babl *model_no_alpha;
- Babl *f_pal_double;
Babl *f_pal_u8;
Babl *f_pal_a_u8;
BablPalette **palptr;
model,
babl_model ("RGBA"),
"linear", pala_to_rgba,
+ "data", palptr,
NULL
);
babl_model ("RGBA"),
model,
"linear", rgba_to_pala,
+ "data", palptr,
NULL
);
model_no_alpha,
babl_model ("RGBA"),
"linear", pal_to_rgba,
+ "data", palptr,
NULL
);
babl_model ("RGBA"),
model_no_alpha,
"linear", rgba_to_pal,
+ "data", palptr,
NULL
);
f_pal_u8,
babl_format ("RGBA u8"),
"linear", pal_u8_to_rgba_u8,
+ "data", palptr,
NULL);
babl_set_user_data (model, palptr);